﻿using RemoteSensingImageDirectServer.Models.Request.Listener;
using RemoteSensingImageDirectServer.Models.Request.Params.OGC.RasterMap;
using RemoteSensingImageDirectServer.Models.Request.Response;

namespace RemoteSensingImageDirectServer.Service.Common
{
    public interface IParamFormatService
    {
        /// <summary>
        /// 单景WMTS服务
        /// </summary>
        /// <param name="tileParam"></param>
        /// <returns></returns>
        ServiceResult Check(SingleWMTSParams tileParam);

        /// <summary>
        /// 联合WMTS服务
        /// </summary>
        /// <param name="tileParam"></param>
        /// <returns></returns>
        ServiceResult Check(GroupWMTSParams tileParam);

        /// <summary>
        /// 高级服务
        /// </summary>
        /// <param name="tileParam"></param>
        /// <returns></returns>
        ServiceResult Check(SingleAdWMTSParams tileParam);

        /// <summary>
        /// 单景WMS服务
        /// </summary>
        /// <param name="tileParam"></param>
        /// <returns></returns>
        ServiceResult Check(SingleWMSParams tileParam);

        /// <summary>
        /// 联合WMS服务
        /// </summary>
        /// <param name="tileParam"></param>
        /// <returns></returns>
        ServiceResult Check(GroupWMSParams tileParam);

        /// <summary>
        /// 高级WMS服务
        /// </summary>
        /// <param name="tileParam"></param>
        /// <returns></returns>
        ServiceResult Check(SingleAdWMSParams tileParam);

        /// <summary>
        /// 获取单景影像路径
        /// </summary>
        /// <param name="listener"></param>
        /// <returns></returns>
        string GetSinglePath(string layerName, IRasterListener rasterListener);

        /// <summary>
        /// 获取联合影像图层路径
        /// </summary>
        /// <param name="wmtsListener"></param>
        /// <returns></returns>
        string GetGroupPath(string layerName);
    }
}
